package com.haust.community.config;

import com.google.code.kaptcha.Producer;
import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Properties;

/**
 * @Auther: csp1999
 * @Date: 2020/11/24/18:56
 * @Description: 验证码生成配置类
 */
@Configuration
public class KaptchaConfig {

    private final String code = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

    /**
     * 将kaptcha 验证码生成插件注入ioc
     *
     * @return
     */
    @Bean
    public Producer kaptchaProducer() {
        Properties properties = new Properties();
        // 图片宽度
        properties.setProperty("kaptcha.image.width", "100");
        // 图片高度
        properties.setProperty("kaptcha.image.height", "40");
        // 图片中验证码字体大小
        properties.setProperty("kaptcha.textproducer.font.size", "32");
        // 图片中验证码字体颜色(这里我用的红色字体)
        properties.setProperty("kaptcha.textproducer.font.color", "255,0,0");
        // 图片中验证码内容的范围
        properties.setProperty("kaptcha.textproducer.char.string", code);
        // 什么都不做的噪声产生器: 所谓噪声就是在验证码上做干扰线，阴影等
        properties.setProperty("kaptcha.noise.impl", "com.google.code.kaptcha.impl.NoNoise");
        // 字符长度
        properties.setProperty("kaptcha.textproducer.char.length", "4");

        // 绘制验证码图像——默认方式
        DefaultKaptcha kaptcha = new DefaultKaptcha();

        // kaptcha 配置
        Config config = new Config(properties);
        kaptcha.setConfig(config);

        return kaptcha;
    }
}
